package com.echo.im.client.handler.platform;

import com.echo.im.common.model.platform.PlatformCmd;



/**
 * 定义一个泛型接口PlatformCmdHandler，用于处理平台命令
 * 该接口扩展了泛型T，其中T必须是PlatformCmd或其子类
 * 接口的目的是为了提供一种机制，通过不同的实现类来支持和发送不同类型的平台命令
 *
 * @author echo
 * @param <T> 扩展自PlatformCmd的具体命令类型
 */
public interface PlatformCmdHandler<T extends PlatformCmd> {

    /**
     * 检查当前处理器是否支持给定的平台命令
     * 这个方法允许不同的实现根据具体的命令类型判断是否能够处理
     *
     * @param platformCmd 要处理的平台命令
     * @return 如果支持该命令，则返回true；否则返回false
     */
    boolean support(PlatformCmd platformCmd);

    /**
     * 发送平台命令
     * 该方法由不同的实现类具体实现，负责将命令发送到目标平台
     *
     * @param platformCmd 要发送的平台命令
     */
    void sendPlatformCmd(T platformCmd);

}


